API Documentation
UniquePtr.h
1 // UniquePtr.h
3 //
5 
6 namespace nkMemory
7 {
15  template <typename T>
16  class UniquePtr
17  {
18  public :
19 
20  // Constructors
24  UniquePtr () ;
33  UniquePtr (T* data) ;
42  template <typename U, typename = std::enable_if_t<std::is_base_of_v<T, U>>>
43  UniquePtr (U* data) ;
49  UniquePtr (const UniquePtr<T>& other) = delete ;
55  UniquePtr (UniquePtr<T>&& other) ;
56 
57  // Destructor
62 
63  public :
64 
65  // Getters
71  T* get () const ;
72 
76  bool empty () const ;
77 
78  public :
79 
80  // Management
84  void release () ;
85 
91  void reset (T* data = nullptr) ;
92 
93  public :
94 
95  // Operators
101  T& operator* () ;
102 
108  const T& operator* () const ;
109 
115  T* operator-> () ;
116 
122  const T* operator-> () const ;
123 
130  UniquePtr<T>& operator= (const UniquePtr<T>& other) = delete ;
131 
139 
143  operator bool () const ;
144 
150  bool operator! () const ;
151 
155  operator std::unique_ptr<T> () ;
156 
161  template <typename U, typename = std::enable_if_t<std::is_base_of_v<U, T>>>
162  operator std::unique_ptr<U> () ;
163 
164  public :
165 
166  // Templated constructors
172  UniquePtr (std::unique_ptr<T> stdPtr) ;
173 
180  template <typename U, typename = std::enable_if_t<std::is_base_of_v<T, U>>>
181  UniquePtr (std::unique_ptr<U> stdPtr) ;
182  } ;
183 }
nkMemory::UniquePtr::UniquePtr
UniquePtr(U *data)
nkMemory::UniquePtr::release
void release()
nkMemory::UniquePtr::get
T * get() const
nkMemory::UniquePtr::operator->
T * operator->()
nkMemory::UniquePtr::empty
bool empty() const
nkMemory::UniquePtr::operator=
UniquePtr< T > & operator=(const UniquePtr< T > &other)=delete
nkMemory::UniquePtr::UniquePtr
UniquePtr(T *data)
nkMemory::UniquePtr::UniquePtr
UniquePtr()
nkMemory::UniquePtr::~UniquePtr
~UniquePtr()
nkMemory::UniquePtr::operator!
bool operator!() const
nkMemory::UniquePtr::UniquePtr
UniquePtr(UniquePtr< T > &&other)
nkMemory::UniquePtr
Smart pointer owning the object instance it encapsulates.
Definition: UniquePtr.h:17
nkMemory::UniquePtr::reset
void reset(T *data=nullptr)
nkMemory::UniquePtr::UniquePtr
UniquePtr(std::unique_ptr< U > stdPtr)
nkMemory::UniquePtr::UniquePtr
UniquePtr(const UniquePtr< T > &other)=delete
nkMemory::UniquePtr::UniquePtr
UniquePtr(std::unique_ptr< T > stdPtr)
nkMemory::UniquePtr::operator*
T & operator*()
nkMemory
Encompasses all API of component NilkinsMemory.
Definition: Allocator.h:7